/********************************************************************************
 *      Copyright:  (C) 2025 YANG Studio
 *                  All rights reserved.
 *
 *       Filename:  mq2.h
 *    Description:  This file 
 *
 *        Version:  1.0.0(27/05/25)
 *         Author:  YANG JIAYU <yangjiayu@gmail.com>
 *      ChangeLog:  1, Release initial version on "27/05/25 19:18:51"
 *                 
 ********************************************************************************/
#ifndef __MQ2_H            // 预编译保护宏，防止头文件重复包含
#define __MQ2_H

#include "./SYSTEM/sys/sys.h"  // 包含系统基础头文件（提供时钟使能、GPIO操作等底层功能）


/******************************************************************************************/
/* MQ2传感器GPIO引脚定义（根据硬件设计修改） */

#define MQ2_ADC_CHX_GPIO_PORT            GPIOA              // MQ2传感器ADC采集引脚所在GPIO端口（GPIOA）
#define MQ2_ADC_CHX_GPIO_PIN             GPIO_PIN_1         // MQ2传感器ADC采集具体引脚（PA1）
#define MQ2_ADC_CHX_GPIO_CLK_ENABLE()    do{ __HAL_RCC_GPIOA_CLK_ENABLE(); }while(0)  /* 使能GPIOA时钟（do-while结构确保宏可在语句中使用） */

/******************************************************************************************/

/* MQ2传感器ADC通道定义 */
#define MQ2_ADC_CHX                      ADC_CHANNEL_1      // MQ2传感器连接的ADC通道（ADC1通道1）
#define MQ2_ADC_CHX_CLK_ENABLE()         do{ __HAL_RCC_ADC1_CLK_ENABLE(); }while(0)  /* 使能ADC1时钟 */


void mq2_init(void);           /* 初始化MQ2传感器（配置GPIO和ADC） */
uint32_t mq2_get_val(void);    /* 获取MQ2传感器采集的数值（返回ADC转换结果的平均值） */

#endif  /* __MQ2_H */  // 预编译保护宏结束

